perm filename XX[XGP,BGB] blob
sn#043292 filedate 1973-05-23 generic text, type T, neo UTF8
------------------ RPROG/EDIT (PROG) --------------------------
BOOLEAN PROCEDURE EDIT(INTEGER COMMAND, EDIT_SCN, EDIT_LINE;
INTEGER EDIT_CHAR, A1, A2; STRING S1);
BEGIN
INTEGER SEARCH_SCENE, SEARCH_LINE, SEARCH_CHAR;
INTEGER SEARCH_CNT, TIME0, TIME1;
# OTHER_EDIT_ROUTINES;
BOOLEAN PROCEDURE SEARCH(INTEGER S_SCENE, S_LINE, S_CHAR;
STRING WHAT);
BEGIN
INTEGER SCN, LN, CHR, CH1; STRING SRCH_STR;
# SEARCH_PRIMITIVES;
SCN ← S_SCENE; TIME1 ← SYSTEM_TIME() - TIME0;
SEARCH_CNT; TIME1;
FOR LN ← S_LINE STEP 1 UNTIL GETLENGTH(SCN)
DO BEGIN
SEARCH_CNT ← SEARCH_CNT + 1;
→ SRCH_STR ← GET_TEXT(SCN, LN, CHR+1, 999); CHR ← 0;
_
IF (CH1←FIND_STRING(WHAT, SRCH_STR)) THEN BEGIN
SEARCH_SCN ← SCN; SEARCH_LINE ← LN;
SEARCH_CHAR ← CHR+CH1+1; RETURN(TRUE)
END Comment recursive search;;
↔ WHILE (CH1←FIND_STRING("#", SRCH_STR)) DO
IF SEARCH(FIND_SCENE(SRCH_STR[CH1+1 TO 999]),1,0,WHAT)
------------------ RDATA/DATA ------------------------
USER.COPILOT(...);
BEGIN
TARG1.TEXTPROG(...);
BEGIN
TARG1.EDIT(...);
BEGIN
...; SEARCH_CNT = 12;
...; TIME1 = 4.05; ...;
TARG1.SEARCH#2(S_SCENE = 3, ..., WHAT = "THIS ONE");
↔ BEGIN
...; CHR = 0; ...
END;
END;
END;
END;
COMMAND EXPANDED COMMENT
⊗4<cr> MOVE_CURSOR(CRNT_REG, 4, 0, 0, 0); [1] The edit-cursor is moved
αF; FIND_STRING(CRNT_REG,";",1); down 4 lines, then out to
αFC FIND_STRING(CRNT_REG,"C",1); the first "C" after a ";"
⊗; SET_P(GET_PROCESS(EP),
EDIT_STRUCT(CRNT_REG) ); [2] The IP is set to the edit-
⊗X STEPP(GET_PROCESS(EP), "↓"); cursor location, then the next
⊗X STEPP(GET_PROCESS(EP), "↓"); 2 statements are executed.
(note changed val for CHR)